<?php
class Daotao_Form_ValidateLichhoc{
	
	//Chua nhung thong bao loi cua form
	protected $_messagesError = null;
	
	//MANG CHUA DU LIEU SAU KHI KIEM TRA
	protected $_arrData;
	
	public function __construct($arrParam = array(), $options = null){
		
		//=========================================
		//KIEM TRA thoigian
		//=========================================
		if($arrParam['gio_den'] < $arrParam['gio_tu']){
			$this->_messagesError['thoigian'] = 'Giờ đến phải lớn hơn giờ bắt đầu';
		}else{
			if($arrParam['gio_den'] == $arrParam['gio_tu']){
				if($arrParam['phut_den'] <= $arrParam['phut_tu']){
					$this->_messagesError['thoigian'] = 'Giờ đến phải lớn hơn giờ bắt đầu';
				}
			}
		}
		
		//=========================================
		//KIEM TRA name
		//=========================================
		if($arrParam['id_diadiemhoc'] == '0'){
			$this->_messagesError['id_diadiemhoc'] = 'Giá trị này không được để trống';
		}
		
		if($arrParam['id_phonghoc'] == '0'){
			$this->_messagesError['id_phonghoc'] = 'Giá trị này không được để trống';
		}
		
		if($arrParam['action'] == 'add'){
			if(count($arrParam['thu']) == 0){
				$this->_messagesError['thu'] = 'Bạn phải chọn ít nhất 1 thứ';
			}else{
				foreach ($arrParam['thu'] AS $key => $val){
					$clause = ' id_phonghoc = ' . $arrParam['id_phonghoc'] . ' AND thu = "' . $val . '" AND gio_tu = ' . $arrParam['gio_tu'] . ' AND phut_tu = ' . $arrParam['phut_tu'] . ' AND gio_den = ' . $arrParam['gio_den'] . ' AND phut_den = ' . $arrParam['phut_den'];
					$options = array('table' => 'nam_daotao_lichhoc', 'field' => 'thu', 'exclude' => $clause);
				
					$validator = new Zend_Validate();
					
					$validator	-> addValidator(new Zend_Validate_Db_NoRecordExists($options),true);
					
					if(!$validator->isValid($val)){
						$message = $validator->getMessages();
						unset($arrParam['thu'][$key]);
					}
				}
			}
		}
		
		if($arrParam['action'] == 'edit'){
			if($arrParam['id_phonghoc'] != '0'){
				$clause = ' id != ' . $arrParam['id'] . ' AND id_phonghoc = ' . $arrParam['id_phonghoc'] . ' AND thu = "' . $arrParam['thu'] . '" AND gio_tu = ' . $arrParam['gio_tu'] . ' AND phut_tu = ' . $arrParam['phut_tu'] . ' AND gio_den = ' . $arrParam['gio_den'] . ' AND phut_den = ' . $arrParam['phut_den'];
				$options = array('table' => 'nam_daotao_lichhoc', 'field' => 'thu', 'exclude' => $clause);
			
				$validator = new Zend_Validate();
							
				$validator	-> addValidator(new Zend_Validate_Db_NoRecordExists($options),true);
					
				if(!$validator->isValid($arrParam['thu'])){
					$message = $validator->getMessages();
					$this->_messagesError['thoigian'] = 'Khung giờ này đã tồn tại với địa điểm, phòng học và thứ được chọn bên dưới';
				}
			}
		}
		
		//=========================================
		//TRUYEN CAC GIA TRI DUNG VAO MANG $_arrData
		//=========================================
		$this->_arrData = $arrParam;
		
	}
	
	//Kiem tra Error
	//return true neu co loi xuat hien
	public function isError(){
		if(count($this->_messagesError) > 0){
			return true;
		}else{
			return false;
		}
	}
	
	//Tra ve mot mang cac thong bao loi
	public function getMessageError(){
		return $this->_messagesError;
	}
	
	//Tra ve mot du lieu sau khi kiem tra
	public function getData($options = null){
		return $this->_arrData;
	}
	
}


